import { IState, ITodoItem, TodoStatus } from "@/typings";
import { ADD_TODO, SET_TODOLIST, REMOVE_TODO, SET_STATUS, SET_DOING } from "./actionsType";

export default {
  [ADD_TODO](state: IState, todo: ITodoItem) {
    state.list.unshift(todo);
    console.log(state.list);
  },
  [SET_TODOLIST](state: IState, list: ITodoItem[]) {
    state.list = list;
  },
  [REMOVE_TODO](state: IState, id: number) {
    state.list = state.list.filter((item: ITodoItem) => item.id != id)
  },
  [SET_STATUS](state: IState, id: number) {
    state.list.forEach((item: ITodoItem) => {
      if (item.id === id) {
        item.status = item.status === TodoStatus.FINISHED ? TodoStatus.WILLDO : TodoStatus.FINISHED;
      }
    })
  },
  [SET_DOING](state: IState, id: number) {
    state.list.forEach((item: ITodoItem) => {
      if (item.id === id) {
        item.status = item.status === TodoStatus.WILLDO ? TodoStatus.DOING : TodoStatus.WILLDO;
      } else {
        item.status = TodoStatus.WILLDO;
      }
    })
  },
}